/**
 * Created by Administrator on 2025/5/7.
 * */
#ifndef GLOBALPARAMETERS_ERA
#define GLOBALPARAMETERS_ERA

#include "Parameters.h"
#include <memory>

enum class AIE2EStateEnum : unsigned int { Online = 0, 
    Ini_Model_Notify = 1, Ini_Model_Updating = 2, Ini_Model_Updated = 3, 
    Tat_Model_Notify = 4, Tat_Model_Updating = 5, Tat_Model_Updated = 6, 
    Vtt_Model_Notify = 7, Vtt_Model_Updating = 8, Vtt_Model_Updated = 9, 
    Sst_Model_Notify = 10, Sst_Model_Updating = 11, Sst_Model_Updated = 12 
};

enum class AIE2EMonitorStateEnum : unsigned int { Online = 0, 
    Runing = 1, // 正常运行收集数据
    Notify_Tat = 2, // 通知算法模型开始训练
    Paused = 3, // 暂停运行
    Vtt = 4, // 虚拟真值目标处理
    Sst_Ready = 5, // 自监督学习
    Sst_Notify = 6,
    Sst_Notified = 7,
    Sst_Idle = 1000
};

class GlobalParameters : public Parameters {
    add_parameter(int,aiE2EState,0);
    add_parameter(int,aiE2EMonitorState,0);

private:
GlobalParameters() {
}


public:
static GlobalParameters *shareInstance() {
static std::shared_ptr<GlobalParameters> pInstance(new GlobalParameters);

/** 对Ti6678，从核必须共享主核的实例 */
if (globalParametersInstance) {
return (GlobalParameters *) (globalParametersInstance);
}

return pInstance.get();
}
};
#undef add_parameter
#endif //GLOBALPARAMETERS_ERA
